Amazon SQSとは何ですか?
従来は、2つのサービスが通信を行う場合、一方のサービスがapiコールを行い、相手のサービスに何か変更があったことやアクションが行われたことを通知していました。
イベントや通知を生成するサービスは、Amazon Simple Queue Service (SQS) を使って、そのシステムで何かが変更されたことを非同期にコンシューマに通知することができます。
これにより、これら2つのサービスを非常にきれいに切り離すことができます。
SQSの種類 SQSには2つの種類があります:
- Standard Queue
- FIFO Queue
Standard Queue
標準的な待ち行列のスループットは無限大です。これは、処理速度が無限大であることを意味します。
1秒間にほぼ無限のトランザクションを実行することができます。
デリバリー
メッセージは最低1回配信されますが、複数回配信されることもあります。
複製を処理する
場合によっては、1つのメッセージが2つ以上のコピーで配信されることがあります。
また、送付された順番と異なる順番で配送されることもあります。
FIFO Queue
そもそもFIFO Queueとは、First In, First Outの略であります。その名の通り機能します。先に到着したものが先に処理されます。
正確な順序で処理します
メッセージは時系列で送受信されます。
また、メッセージは順番に配信されるため、処理が中断する可能性がありません。.
トランザクションの制限
TPS(1秒あたりのトランザクション数)の制限があるため、無制限のスループットというものは存在しない。最大300TPSの制限があるのですね。
ただし、バッチングを使えば、1つのapi操作で最大10メッセージまで一括でSQSに発行することができます。
その結果、1バッチに10メッセージ使用する場合、300TPSではなく、3000TPSを発行することができます。
まとめ
Amazon SQSの主な利点は、非同期のメッセージベースの通信が可能であるため、APIコールよりも優れている点であります。